Robotyka

Pętla 1 kHz, FOC i ros2_control: Jak projektować sterowanie momentowe (Torque Control) w robotach nowej generacji

HARDWARE-IN-THE-LOOP CiA 402 / ETHERCAT ROS 2 JAZZY / ROLLING

Pętla 1 kHz, FOC i ros2_control: Jak projektować sterowanie momentowe (Torque Control) w robotach nowej generacji

Inżynieryjne ujęcie przejścia ze sztywnej pętli pozycyjnej na bezposrednie sterowanie prądowe i podatność aktywną (Active Compliance) w stawkach robotycznych.

Częstotliwość pętli
1000 Hz / 1 ms
Szczytowy Jitter
< 35 µs
Zarządzanie Wątkami
SCHED_FIFO
Interfejs Wymiany
effort_command

1. Matematyczne Podstawy FOC w Sterowaniu Prądowym

W silnikach bezszczotkowych (BLDC/PMSM) moment obrotowy $\tau$ jest bezpośrednio powiązany ze składową kwadraturową prądu stojana $I_q$. Warunkiem koniecznym do wdrożenia sterowania momentowego jest kaskadowa struktura regulatora, w której nadrzędny sterownik wyznacza wartość zadana prądu, a wewnętrzna pętla FOC (Field-Oriented Control) realizuje przekształcenia Clarka i Parka z częstotliwością od 10 kHz do 20 kHz na poziomie mikrokontrolera napędu.

// Równanie momentu elektromagnetycznego silnika PMSM:
$$\tau_e = \frac{3}{2} p \left( \lambda_d I_q + (L_d – L_q) I_d I_q \right)$$
Dla silników z magnesami powierzchniowymi (SPM), gdzie $L_d = L_q$, zależność upraszcza się do liniowej postaci: $\tau_e = K_t \cdot I_q$.

Przy tradycyjnym sterowaniu pozycją uchyb $\theta_{err} = \theta_{cmd} – \theta_{act}$ generuje za pośrednictwem regulatora PID maksymalną odpowiedź napięciową, co przy zablokowaniu wału prowadzi do wysycenia prądowego (wind-up) i niekontrolowanego wzrostu siły. W sterowaniu momentowym ograniczenie wartości $I_q$ wyznacza fizyczny limit siły, jaką staw robota może wywrzeć na otoczenie.

2. Architektura Interfejsu w ros2_control

Stos ros2_control izoluje algorytmy planowania trajektorii od warstwy fizycznej sprzętu. W przypadku sterowania momentowego kluczowe jest zdefiniowanie odpowiednich zasobów w pliku konfiguracji URDF/Xacro oraz zaimplementowanie klasy dziedziczącej po hardware_interface::SystemInterface.

Sekwencja Przepływu Danych w Pętli 1 ms (Real-Time Loop)
1. read() → Odczyt ramek EtherCAT CoE (RxPDO: rzeczywista pozycja, prędkość, prąd Iq)
2. update() → Przeliczenie algorytmu impedancji w ControllerManager (Obliczenie effort_command)
3. write() → Zapis wartości zadanego prądu/momentu do TxPDO i wysłanie pakietu sygnałem EtherCAT

Kluczowym wymogiem wydajnościowym wewnątrz metod read() oraz write() jest całkowity zakaz dynamicznej alokacji pamięci (malloc, tworzenie instancji obiektów std::string czy alokowanie wektorów). Każda alokacja w czasie wykonywania może wywołać wywłaszczenie wątku przez alokator systemowy OS i naruszyć rygor rzędu 1 ms.

3. Determinacja Czasowa: Konfiguracja Linux PREEMPT_RT

Standardowy planista zadań systemu Linux (CFS) nie gwarantuje przewidywalności czasowej wymaganej przez pętlę 1 kHz. Wdrożenie wymaga kompilacji jądra z łatą CONFIG_PREEMPT_RT=y oraz odpowiedniego odizolowania rdzeni procesora na potrzeby wątków sterowania.

Klaryfikacja ustawień wątku wykonawczego w C++:
  • Priorytet SCHED_FIFO: Ustawienie polityki szeregowania na SCHED_FIFO z priorytetem w zakreśsie 80–98.
  • CPU Affinity: Przypisanie wątku ros2_control do wyizolowanego rdzenia CPU (wyłączonego z planisty komendą bootloader `isolcpus`).
  • Blokada Pamięci (mlockall): Wywołanie mlockall(MCL_CURRENT | MCL_FUTURE) w celu zapobiegania zjawisku zrzucania stron pamięci RAM do przestrzeni SWAP (Page Faults).
📚 Źródła danych i publikacje naukowe
  1. ROS 2 Documentation: ros2_control: A generic and modular control framework for ROS 2 (ros-controls.github.io).
  2. IEEE Transactions on Robotics: Hogan, N. (1985). Impedance Control: An Approach to Manipulation. Part I–III. Journal of Dynamic Systems, Measurement, and Control.
  3. EtherCAT Technology Group: ETG.6010 Implementation Guideline for CiA 402 Drive Profile.
  4. Linux Foundation: REAL-TIME Linux Wiki & PREEMPT_RT Patch documentation (wiki.linuxfoundation.org/realtime).

Zostaw odpowiedź

Back to top button

Odkryj więcej z INTEGRATORPRZEMYSŁOWY.PL

Zasubskrybuj już teraz, aby czytać dalej i uzyskać dostęp do pełnego archiwum.

Czytaj dalej